#ifndef __AW_NOOSExperimenterBrainCV
#define __AW_NOOSExperimenterBrainCV

class AW_NOOSExperimenterBrainCV : public AW_NOOSBrain {
	
public:
	AW_NOOSExperimenterBrainCV(Ontology *O,FTKBase *Memory,FTKBase *CB,bool pause);
	AW_NOOSExperimenterBrainCV(FILE *fp,Ontology *O,FTKBase *Memory,FTKBase *CB,bool pause);

	~AW_NOOSExperimenterBrainCV(); 

	virtual bool load(FILE *fp);
	virtual bool save(FILE *fp);

	virtual bool is_a(char *c);
	virtual bool is_a(Symbol *c);

	virtual void thread(void);

	static void splitTrainingSet(List <FeatureTerm> *distribution,List<FeatureTerm> *training_set,int nagents,float percentage_to_distribute,double bias);
	static double *generateBiasedDistribution(int nclasses, double desiredBias,TRanrotBGenerator *random);

protected:

	// Parameters of the experiment:
	int m_n_folds,m_n_iterations;
	float m_percentage_to_distribute;
	float m_desired_bias;
	Symbol *m_problem_sort;

	TRanrotBGenerator *m_random;

private:

}; /* AW_NOOSExperimenterBrainCV */ 

#endif


